-
Notifications
You must be signed in to change notification settings - Fork 373
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Relax offline criteria #428
base: master
Are you sure you want to change the base?
[WIP] Relax offline criteria #428
Conversation
Also overload meaning of readonly expansion on node
I have been thinking some more about this and I think that - removing/deprecating plugin level online/offline capability is fine. Pros:
Cons:
For me I think biggest pro is - not having to enforce ordering via capabilities. We have learnt that, this does not work well and is hard to implement correctly. cc @saad-ali @xing-yang @msau42 @jsafrane |
Deprecating the capability until the next major release would allow us to avoid making a breaking change, I think. Plugins using the value could continue to advertise the capability, and COs could continue to ignore it. We'll discuss it more in the call next week, but I would vote for deprecation over removal unless we have some other reason we need to cut a 2.0 release. |
Offline volume expansion is a released feature that is already implemented by some CSI drivers and used by customers. It also has well-documented procedure in both Kubernetes and CSI spec on how to achieve that. Yes, there are issues, but it is still a useful feature. For some CSI drivers, this is the only way for users to expand an existing volume. I also think that we should separate the issue of controller offline expansion vs node offline expansion. According to the current CSI spec, offline expansion refers to controller offline expansion only. Node offline expansion (a way for a plugin to opt-in to not call NodeExpandVolume automatically when volume is in-use by a running workload) is a new feature that has not been addressed. In stead of removing the offline capability altogether, I think we should keep the existing offline expansion capability for controller expansion, and introduce a new alpha capability for Node offline expansion. If there is a strong reason to absolutely remove this capability, then I agree with Julian that we need to have a deprecation period. Isn’t the deprecation period usually 2 releases? I don’t think we should remove a released capability without a deprecation period. I also think that we should come up with a replacement plan first before deprecating an already released capability. Can we discuss how this new alpha capability would work first? Once we can agree upon a new alpha capability, then we can introduce the new alpha capability and in the same time deprecate the existing capability. |
Just to clarify - we are not removing offline capability. Volumes can be still expanded offline but what we are talking about removing/deprecating is, ability for a plugin to declare that it only supports offline expansion. Plugins can still only support offline expansion and in which case they would report |
After the ControllerExpandVolume had been called and expansion successful, how often the NodeExpandVolume will be called automatically when volume is in-use by a running workload? @gnufied @xing-yang |
Removing the ability for plugin to declare that it only supports offline expansion makes it look like offline expansion support is no longer official. I don't see how the spec can be clarified so that a plugin cannot declare that it only supports offline expansion but somehow offline expansion is still supported. I think in that case, it is better not to make any changes to the existing CSI spec. I think removing it will add confusion and will not make things better. |
We had another meeting to discuss this today. There are two areas we want fix: "offline controller expand" and "offline node expand". For "offline controller expand" the following options were discussed:
Folks on the call seem to be leaning towards option 3 above. For "offline node expand" the following options were discussed:
Folks on the call seem to be leaning towards option 1 above, but I'm not so sure. We want to make sure that this does not indefinitely block us from cutting a CSI 1.3 with VolumeHealth. Next steps:
|
Spoke with @cduchesne offline on slack and their use case is to support expansion on node, after Having said that - he has a concern that since |
Meeting notes from today's meeting For "offline controller expand"
For "offline node expand"
Next steps:
|
For "offline controller expand"
For "offline node expand"
Next steps:
|
To follow up on action items:
Currently both builds are failing for unrelated reason - #434 |
Also overload meaning of readonly expansion on node.
xref #423